#include <gtest/gtest.h>

class Circle {
public:
    explicit Circle(const double r) : r_(r), area_(3.14 * r_ * r_) {}

    bool operator==(const Circle& other) const {
        return r_ == other.r_ && area_ == other.area_;
    }

    friend void PrintTo(const Circle& point, std::ostream* out) {
        *out << "Circle(r= " << point.r_ << ", area= " << point.area_ << ")\n";
    }

private:
    double r_;
    double area_;
};

Circle make_circle(const double r) { return Circle(r); }

TEST(CustomPrint, CircleCase) { EXPECT_EQ(make_circle(5.0), Circle(4.9)); }